import { get, post } from '../utils/request';
import type { ReportSection } from '../reportTemplate/dyReport'

// API基础URL
// export const API_BASE_URL = '';
export const API_BASE_URL = 'https://aistore.chasingbrilliant.com';
// export const API_BASE_URL = 'http://localhost:5002';

// 接口返回数据类型定义
interface ResponseData<T> {
  code: number;
  message: string;
  data: T;
}

// 决策相关接口
export interface DecisionParams {
  report_data: string;
}

// 分析结果类型
// export interface AnalysisResult {
//   "一、核心问题梳理": string[];
//   "二、运营方向建议": {
//     "模块": string[];
//     "优化方向": string[];
//   };
//   "三、行动建议": {
//     "问题点": string[];
//     "推荐动作": string[][];
//   };
// }

// export interface DecisionResult {
//   analysis: AnalysisResult;
// }

/**
 * 决策接口
 * @param params 决策参数
 * @returns 决策结果
 */
export function getDecision(params: DecisionParams) {
  return post(API_BASE_URL + '/api/decision/analysis_all', params);
}

// 商户相关接口
export interface Merchant {
  id: string;
  name: string;
}

export interface MerchantListResult {
  list: Merchant[];
}

/**
 * 获取商户列表
 * @returns 商户列表
 */
export function getMerchantList({ page_num, page_size }: { page_num: number, page_size: number }): Promise<ResponseData<MerchantListResult>> {
  return get<ResponseData<MerchantListResult>>(`${API_BASE_URL}/api/data/merchants?page_num=${page_num}&page_size=${page_size}`);
}

// 商户数据接口
export interface MerchantDataItem {
  name: string;
  value: string | number | Array<any>;
}

export interface MerchantDataSection {
  title: string;
  items: MerchantDataItem[];
}

/**
 * 获取商户数据
 * @param merchantId 商户ID
 * @returns 商户数据
 */
export function getMerchantData(merchantId: string): Promise<ResponseData<MerchantDataSection[]>> {
  return get<ResponseData<MerchantDataSection[]>>(`${API_BASE_URL}/api/data/merchant?merchantId=${merchantId}`);
}

// 文件相关接口
export interface FileData {
  fileId: number;
  fileName: string;
  fileType: number;
  fileFormat: string;
}

export interface MerchantFilesResult {
  files: FileData[];
}

/**
 * 获取商户文件列表
 * @param merchantId 商户ID
 * @returns 文件列表
 */
export function getMerchantFiles(merchantId: string): Promise<ResponseData<MerchantFilesResult>> {
  return get<ResponseData<MerchantFilesResult>>(`${API_BASE_URL}/api/file/merchant/${merchantId}`);
}

/**
 * 上传文件
 * @param formData 文件表单数据
 * @returns 上传结果
 */
export function uploadFile(formData: FormData): Promise<ResponseData<any>> {
  // 使用fetch API代替post函数，因为需要设置headers
  return fetch(`${API_BASE_URL}/api/file/upload`, {
    method: 'POST',
    body: formData,
  }).then(response => response.json());
}

// 更多接口可以在此处添加 